package com.jf.cloud.service.sysmanager.remote;


import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.jf.cloud.service.sysmanager.common.base.AjaxPageData;
import com.jf.cloud.service.sysmanager.common.base.OPaging;
import com.jf.cloud.service.sysmanager.dao.ISysRoleTypeService;
import com.jf.cloud.service.sysmanager.entity.SysRoleType;
import com.jf.cloud.service.sysmanager.entity.SysStaff;
import com.jf.cloud.service.sysmanager.support.web.BaseController;

/**
 * 角色 控制器
 * 
 * @author 朱建文 创建时间：2017年12月5日 下午6:52:36
 */
@Controller
@RequestMapping("/roleType")
public class SysRoleTypeController extends BaseController{
	private static Logger log = LoggerFactory.getLogger(SysRoleTypeController.class);
    
	@Resource
	private ISysRoleTypeService  roleTypeService;
	
	/**
	 * 获取角色列表
	 * 
	 * @author 朱建文 创建时间：2017年12月5日 下午6:52:50
	 */
	@RequestMapping("/list")
	public String roleList(HttpServletRequest request) {
		try {
			Integer flag = this.getIntValue(request, "flag");
			if (Integer.valueOf(1).equals(flag)) {
				request.setAttribute("msg", "添加成功");
			}
		} catch (NumberFormatException e) {
			log.error("获取角色列表出错!", e);
		}
		return "jsp/system/roleType_list";
	}
	
	/**
	 * 获取列表
	 * 
	 * @author 朱建文 创建时间：2017年12月5日 下午7:54:26
	 */
	@ResponseBody
	@RequestMapping("/roleType.json")
	public AjaxPageData<SysRoleType> list(HttpServletRequest request, OPaging<SysRoleType> page) {
		Map<String, Object> wm = page.getWm();
		wm.put("DEL_FLAG", 0);

		return getAjaxPageData(roleTypeService.findPage(page));
	}
	
	/**
	 * 角色编辑
	 * 
	 * @author 朱建文 创建时间：2017年12月5日 下午7:54:09
	 */
	@RequestMapping("/roleTypeEditer")
	public String roleEditer(HttpServletRequest request,HttpServletResponse response) {
		Long id = getLongValue(request, "rowId");
		SysRoleType roleEdit = null;
		if (id != null && id > 0) {
			roleEdit = roleTypeService.findByPK(id);
		}
		request.setAttribute("roleEdit", roleEdit);
		return "jsp/system/roleType_editer";
	}
	
	/**
	 * 添加角色
	 * 
	 * @author 朱建文 创建时间：2017年12月5日 下午7:54:38
	 */
	@RequestMapping("/saveRoleType")
	public String saveRole(HttpServletRequest request, SysRoleType roleEdit) {
		if (isReCommit(request)) {
			return "redirect:/roleType/list?flag=1";
		}
		String returnView = roleList(request);
		request.setAttribute("code", 1);
		SysStaff user = getLoginUser(request);
		try {
			if (roleEdit.getRowId() == null || roleEdit.getRowId() == 0) {
				roleEdit.setDelFlag(0);//默认未删除
				this.roleTypeService.saveObj(roleEdit);
				request.setAttribute("msg", "添加角色类型成功!");
				log.info(user.getStaffAccount() + " 添加角色类型");

			} else {
				this.roleTypeService.updateRole(roleEdit);
				request.setAttribute("msg", "修改角色类型成功!");
				log.info(user.getStaffAccount() + " 修改角色类型");

			}
		} catch (Exception e) {
			log.error("saveRole ---------> has error",e);
			request.setAttribute("msg", "添加失败,未知错误!");
			return returnView;
		}
		return returnView;
	}
 	
	/**
	 * 删除角色
	 * 
	 * @author 朱建文 创建时间：2017年12月5日 下午7:54:48
	 */
	@ResponseBody
	@RequestMapping("/roleTypeDelete")
	public String roleDelete(HttpServletRequest request,HttpServletResponse response) {
		String result = "0";
		Long id = getLongValue(request, "rowId");
		SysStaff user = getLoginUser(request);
		try {
			this.roleTypeService.deleteRole(id, user);

		} catch (Exception e) {
			log.error("删除角色类型失败", e);
			result = "-1";
		}
		return result;
	}
	
}
